package com.ziyueyuwen.xiniao.service;

import com.ziyueyuwen.xiniao.bean.ZyClassLessonInfo;
import com.ziyueyuwen.xiniao.bean.vo.ZyLessonVO;

import java.util.Date;

/**
 * @author wancheng  on 2018/12/19.
 */
public interface WxMessageService {

    /**
     * 小明同学，新的课程预习内容已经发布啦!
     * 课程名称：数学第一课《有理数》
     * 授课教师：张三老师
     * 时间： 2014年7月21日 18:36
     * 请点击进入查看
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void sendClassRemindInflated(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 推送本节课上课提醒  开课前1小时
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void sendLessonBeforeOneHour(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 推送本节课上课提醒  开课前15分钟
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void sendLessonBeforeFifteenMinute(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 推送本节课到课提醒  班主任确认到教室后
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void sendLessonSignIn(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 推送本节课回放链接 课程结束后30分钟
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void sendLessonReplay(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 推送本节课课程总结 课程结束10分钟
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void sendLessonSummarize(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 推送本节课作业 课程结束10分钟，，标注截止日期是下节课上课时间
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void sendLessonHomework(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 提交作业后推送提交作业通知  家长提交作业即时
     *
     * @param userAccount
     * @param lessonId
     */
    void sendLessonHomeworkCommit(String userAccount, Integer lessonId);

    /**
     * 推送未提交作业提醒  本讲作业推送48小时（只给未提交作业学员推送），标注截止日期是下节课上课时间
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void sendLessonHomeworkUnCommit(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 批改作业后推送作业批改通知
     *
     * @param userAccount
     * @param teacherName
     * @param lessonId
     * @param correctTime
     */
    void sendLessonHomeworkCorrect(String userAccount, String teacherName, Integer lessonId, Date correctTime);

    /**
     * 课后拓展
     *
     * @param userAccount
     * @param lessonId
     * @param taskId
     */
    void saveLessonExpansion(String userAccount, Integer lessonId, Integer taskId);

    /**
     * 学生的课堂报告
     *
     * @param openId
     * @param lessonId
     * @param teacherName
     */
    void sendLessonReport(String openId, Integer lessonId, String studentAccount, String teacherName);

    /**
     * 获取报告的url
     *
     * @param lessonId
     * @param studentAccount
     * @return
     */
    String getReportUrl(Integer lessonId, String studentAccount);
}
